home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / t_os / magl / mag.h < prev    next >
C/C++ Source or Header  |  1991-10-18  |  4KB  |  129 lines

  1. /* MAKI & MAG Library */
  2.  
  3. #ifndef NULL
  4. #define NULL    0
  5. #endif
  6.  
  7. #define FALSE    0
  8. #define TRUE    -1
  9. #define EOC        0x1a        /* End Of Comment */
  10. #define CR        0x0d
  11. #define LF        0x0a
  12. #define BufSize    256
  13.  
  14. #define PLANE20    0x001c
  15. #define PLANE21    0x0104
  16. #define PLANE10    0x010c
  17.  
  18. #define PALNO    0xfd90
  19. #define PALB    0xfd92
  20. #define PALR    0xfd94
  21. #define PALG    0xfd96
  22.  
  23. #define LINE200    0x01            /* 200ラインフラグ */
  24. #define COL8    0x02            /* 8色フラグ */
  25. #define DIGITAL    0x04            /* デジタルフラグ */
  26. #define COL256    0x80            /* 256色フラグ */
  27.  
  28. #define DOS        0x40            /* DOS互換画面フラグ */
  29. #define VRAM    0x20            /* 強制VRAM展開フラグ */
  30.  
  31. #define Other    0x00            /* 機種コードですよん */
  32. #define MSX        0x03
  33. #define PC88    0x88
  34. #define X68K    0x68
  35. #define Eseq    0xff
  36.  
  37. #define Scroll_UP        1
  38. #define Scroll_DOWN        2
  39. #define Scroll_RIGHT    3
  40. #define Scroll_LEFT        4
  41. #define Zoom_DOWN        5
  42. #define Zoom_UP            6
  43.  
  44. typedef union {
  45.     struct { unsigned char h,l; } m;
  46.     unsigned short    s;
  47.     } WORD;
  48.  
  49. typedef struct {
  50.     char    header;            /* ヘッダの先頭 */
  51.     char    machine;        /* 機種コード */
  52.     char    rflg;            /* 機種依存フラグ */
  53.     char    screen;            /* スクリーンモード */
  54.     short    lx;                /* 表示開始位置X */
  55.     short    ly;                /* 表示開始位置Y */
  56.     short    rx;                /* 表示終了位置X */
  57.     short    ry;                /* 表示終了位置Y */
  58.     int        offa;            /* フラグAのオフセット */
  59.     int        offb;            /* フラグBのオフセット */
  60.     int        sizb;            /* フラグBのサイズ */
  61.     int        offp;            /* ピクセルのオフセット */
  62.     int        sizp;            /* ピクセルのサイズ */
  63.     } MAGHEADER;
  64.  
  65. typedef struct {
  66.     char    id[8];            /* MAKI識別子'MAKI01A ' or 'MAKI01B ' */
  67.     char    comment[24];    /* セーバー作者コメント */
  68.     WORD    sizb;            /* フラグBのサイズ */
  69.     WORD    sizpa;            /* ピクセルAのサイズ */
  70.     WORD    sizpb;            /* ピクセルBのサイズ */
  71.     WORD    tile;            /* タイルデータのサイズ */
  72.     WORD    lx;                /* 表示開始位置X */
  73.     WORD    ly;                /* 表示開始位置Y */
  74.     WORD    rx;                /* 表示終了位置X */
  75.     WORD    ry;                /* 表示終了位置Y */
  76.     } MKIHEADER;
  77.  
  78. #if 0
  79. typedef struct {
  80.     Mdir    *next;
  81.     char    fname[256];        /* パス&ファイルネーム */
  82.     char    comment[81];    /* コメントの前から1ライン分 */
  83.     int        header;            /* ファイル先頭からのヘッダのオフセット */
  84.     int        size;            /* ファイルサイズ */
  85.     int        lx,ly;            /* 左上座標 */
  86.     int        rx,ry;            /* 右下座標 */
  87.     } Mdir;
  88. #endif
  89.  
  90. /* Global Vari. */
  91.  
  92. extern MAGHEADER    maghead;                    /* MAGのヘッダー */
  93. extern MKIHEADER    mkihead;                    /* MAKIのベッダー */
  94. extern int            siza;
  95. extern char            egbwork[];                    /* EGBライブラリ用ワーク */
  96. extern char            pal[768];                    /* 現在のパレット情報 */
  97. extern char            *flga,*flgb,*flg,*pix;        /* flag&pixel格納アドレス */
  98.     /* 現在メモリに存在するイメージ情報 */
  99. extern char            *vram;                        /* イメージ格納アドレス */
  100. extern int            screen_mode;                /* スクリーンモード(MAG互換) */
  101. extern int            image_mode;                    /* メモリ上のデータのモード */
  102. extern int            lx,ly;                        /* 左上座標 */
  103. extern int            rx,ry;                        /* 右下座標 */
  104. extern char            comment[81];                /* コメント */
  105.  
  106. /* MAKI Load Library */
  107. extern int        mki_get_head(FILE *fp);
  108. extern int        mki_decode(FILE *fp,int mode,int x,int y);
  109.  
  110. /* MAG Load Library */
  111. extern int        mag_get_head(FILE *fp);
  112. extern int        mag_decode(FILE *fp,int mode,int x,int y);
  113.  
  114. /* Display Library */
  115. extern int        display(int slx,int sly,int ssx,int ssy,int dx,int dy);
  116. /*
  117.  *    Memory to Vram copy function
  118.  *        int slx,sly;        Memory上の転送元左上座標
  119.  *        int ssx,ssy;        転送サイズ
  120.  *        int dx,dy;            VRAM上の転送先左上座標
  121.  */
  122. extern int        set_palette();
  123. extern int        stringcmp(char *s,char *d);
  124.  
  125. /* MAG Save Library */
  126.  
  127. /* 只今、工事中 :-) */
  128.  
  129.